package com.yxq.mdt.app.modules.personal.model;

import com.yxq.mdt.app.modules.personal.bean.EditPicutreResultBean;
import com.yxq.mdt.app.modules.personal.bean.MyPersonalBean;

import io.reactivex.Observable;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query;

/**
 * @author L
 * @time 2019-11-25
 * @describe 个人用户信息相关API$
 */
public interface UserAPI {

    /**
     * 我的-个人信息编辑
     *
     * @param professionId      1;2;3,熟悉领域(行业以","隔开)
     * @param shopAddress       商家地址
     * @param headimg           头像
     * @param residence         在地中文(例 省;市;区 "1;12;123")
     * @param mobile            手机号码
     * @param position          担任职位
     * @param interest          a;b;c,个性标签-兴趣爱好(内容以","隔开)
     * @param gsName            昵称
     * @param concernProfession 4;5;6, 期待认识(行业以","隔开)
     * @param shopName          商家名称
     * @param qqNum             QQ号
     * @param wxImg             微信二维码
     * @param education         毕业院校
     * @param cardShareWord     名片分享语(其它字段不传)
     * @param topicShareWord    动态分享语(其它字段不传)
     * @param sex               性别(1.先生 2.女士)
     * @param oftenToPace       常往来地（内容以","隔开）
     * @param generation        个性签名
     * @param posterImg         海报
     * @param shopLogo          企业logo
     * @param email             电子邮箱
     * @param tel               座机
     * @param showHot           热文是显示名片 0 不显示 1 显示
     * @param mapLng            经度
     * @param mapLat            纬度
     * @param age               年龄
     * @param constellation     星座
     * @param birthday          生日 年-月-日
     * @param birthdayShow      生日 0 不保密 1 保密
     * @param marriage          婚恋
     * @param marriageShow      婚恋 0 不保密 1 保密
     * @param sexual            性取向
     * @param sexualShow        性取向 0 不保密 1 保密
     * @param friendsIntention  交友意向
     * @param loveType          喜欢类型
     * @param residenceCode     所在地编号1;12;123
     * @param hometown          家乡
     * @param hometownCode      家乡编号 1;12;123
     * @param userProfile       个性标签-自我描述(内容以","隔开)
     * @return
     */
    @POST("/lbs/gs/user/saveGaUserExt")
    @FormUrlEncoded
    Observable<String> saveGaUserExt(@Field("professionId") String professionId, @Field("shopAddress") String shopAddress, @Field("headimg") String headimg, @Field("residence") String residence,
                                     @Field("mobile") String mobile, @Field("position") String position, @Field("interest") String interest, @Field("gsName") String gsName,
                                     @Field("concernProfession") String concernProfession, @Field("shopName") String shopName, @Field("qqNum") String qqNum, @Field("wxImg") String wxImg,
                                     @Field("education") String education, @Field("cardShareWord") String cardShareWord, @Field("topicShareWord") String topicShareWord, @Field("sex") String sex,
                                     @Field("oftenToPace") String oftenToPace, @Field("generation") String generation, @Field("posterImg") String posterImg, @Field("shopLogo") String shopLogo,
                                     @Field("email") String email, @Field("tel") String tel, @Field("showHot") String showHot, @Field("mapLng") String mapLng, @Field("mapLat") String mapLat,
                                     @Field("age") String age, @Field("constellation") String constellation, @Field("birthday") String birthday, @Field("birthdayShow") String birthdayShow,
                                     @Field("marriage") String marriage, @Field("marriageShow") String marriageShow, @Field("sexual") String sexual, @Field("sexualShow") String sexualShow,
                                     @Field("friendsIntention") String friendsIntention, @Field("loveType") String loveType, @Field("residenceCode") String residenceCode, @Field("hometown") String hometown,
                                     @Field("hometownCode") String hometownCode, @Field("userProfile") String userProfile);

    /**
     * 获取个人资料
     *
     * @param userId 用户ID
     * @return
     */
    @GET("/lbs/gs/user/getGaUserExtVoById")
    Observable<MyPersonalBean> getGaUserExtVoById(@Query("userId") String userId);

    /**
     * 编辑封面，语音介绍
     *
     * @param body
     * @return
     */
    @Headers("Content-Type: application/json")
    @POST("/lbs/gs/user/updateAttribute")
    Observable<EditPicutreResultBean> updateAttribute(@Body RequestBody body);

    /**
     * 我的-名片(点赞/浏览/分享)
     *
     * @param recordType 2：社区（动态）分享 3：商品分享 4：拍卖活动分享
     * @param handleId   社区（动态）分享 /商品分享 /拍卖活动分享 id（recordType取值）
     * @param operType   0：浏览（阅读）,1:点赞，2：分享(recordType=2,3,4)设置为2
     * @return
     */
    @POST("/lbs/gs/user/saveGsOperRecord")
    @FormUrlEncoded
    Observable<String> saveGsOperRecord(@Field("recordType") int recordType, @Field("handleId") String handleId, @Field("operType") int operType);
}
